// let myName: string = 'hello world'
// console.log(myName)
//我们在学习ts的工程中主要学习ts如何写类型，（ts关注的是类型，不是业务逻辑）
//类型的分类：基础类型、  高级类型、 内置类型、 自定义类型  类型体操
//TS的类型都是在变量后面来写，：后面跟类型 =后面是值 （TS语法，不是js对象） let myName: string = 'hello world'
// 1).ts的目的是什么？从安全角度来考虑使用（考虑我在赋予结果的时候是否会发生错误）
//2).ts是用来检测类型的，只是提示作用，不是在运行的时候发生的（运行的时候和ts无关，“代码没有被执行”）
//3).编译ts之后 类型就消失了，不存在类型了 （写的都是空气）最终生产环境下 可以增减.d.ts 来js文件增加类型声明
// let a: number = 1
// console.log(a)
// export { }//解决ts文件报错问题  模块化的问题
//ts的特点：在编写代码的时候，并不是所有的变量都要添加类型。（ts中支持类型推导，根据赋的值来猜测它的类型，如果猜测的类型是对的不用给类型，如果猜测的不对，或者类型无法正确推导，就自己写类型）
// const name: string = 'pei';
// const age: number = 18;
// const gender: boolean = true;
//基础类型， 包装类型 规范 小写的类型一般用于描述基本类型 大写的类型一般用于实例类型
let s1 = 'abc';
let s2 = new String('abc'); //类的类型 类类型用来描述实例
let s3 = 'abc'; //z在赋予值的时候 子集可以赋予给父级
//我们在使用基本类型的时候  需要采用的是 小写类型来标识
//数组的概念：用于储存多个类型相同的集合
//类型 [] Array<类型>都可以用于声明数组
let arr1 = [1, 2, 3];
let arr2 = [1, 2, 3];
let arr3 = [1, 2, 3, '4'];
let arr4 = [1, 2, 3, '4'];
//数组要求的是储存的格式按照特定的类型来储存，不关心位置
//元组 tuple 用于固定元素数量和类型的数组 赋值必须符合这个结构和顺序
let tuple1 = ['a', 'b', 1, true]; //很少这样用
let tuple = ['a', 1, true];
//已经约定好三个  后续增加的不算  访问的时候不能访问后增加 安全问题
let item = tuple[0]; //string
// export { }//解决ts文件报错问题  模块化的问题
export function helloWorld() {
    console.log('Hello, world!');
}
//# sourceMappingURL=index.js.map